/**
 ***********************************************************************************************************
 * 
 ***********************************************************************************************************
 * @file RBSamplerState.h
 ***********************************************************************************************************/

#ifndef __RBSAMPLERSTATE_H__
#define __RBSAMPLERSTATE_H__

#ifdef  HEADER_ONCE
#pragma HEADER_ONCE
#endif

#ifdef  HEADER_MSG
#pragma HEADER_MSG(RBSamplerState.h)
#endif

/***********************************************************************************************************
 * Includes
 ***********************************************************************************************************/

/***********************************************************************************************************
 * Forward declarations
 ***********************************************************************************************************/

/***********************************************************************************************************
 * Classes
 ***********************************************************************************************************/

namespace RBSamplerState
{
    enum SamplerState
    {
        SS_ADRESSU         = 1,
        SS_ADRESSV         = 2,
        SS_ADRESSW         = 3,
        SS_BORDERCOLOR     = 4,
        SS_MAGFILTER       = 5,
        SS_MINFILTER       = 6,
        SS_MIPFILTER       = 7,
        SS_MIPMAPLODBIAS   = 8,
        SS_MAXMIPLEVEL     = 9,
        SS_MAXANISOTROPY   = 10
    };

    static const uint32 ms_maxAdressMode = 3;
    enum AdressMode
    {
        SAM_WRAP            = 1,
        SAM_MIRROR          = 2,
        SAM_CLAMP           = 3,
        SAM_BORDER          = 4,
        SAM_MASK            = (1<<ms_maxAdressMode)-1
    };

    static const uint32 ms_maxFilterMode = 3;
    enum FilterMode
    {
        SFM_NONE            = 0,   // No Mip-mapping
        SFM_POINT,
        SFM_LINEAR,
        SFM_ANISOTROPIC,
        SFM_MASK            = (1<<ms_maxFilterMode)-1
    };
};


/***********************************************************************************************************/

#endif // __RBSAMPLERSTATE_H__